#!/bin/sh

#-----------------------------------------------------------------------
#
# Post-installation shell script for Witango Application Server 5.5
#
#  CS: 20040403  Initial Build
#  CS: 20050321  Tiger Support Added
#
#-----------------------------------------------------------------------

VERBOSE=1
HTTPD_CONF=httpd.conf

######################################################
#      OS Config probing routines
######################################################

probe_os () {
	OS_VER=`uname -r`
	if [ "$OS_VER"=6.8 ] ; then 
		OSX_VER=10.2
		APPSRV_USER=root
		APPSRV_GROUP=staff
		WITANGO_USER=witango
		WITANGO_GROUP=staff
		STARTUP_USER=system
		STARTUP_GROUP=wheel
		HTTPD_USER=root
		HTTPD_GROUP=wheel
	elif [ "$OS_VER"=7.3 ] ; then 
		OSX_VER=10.3
		APPSRV_USER=system
		APPSRV_GROUP=admin
		WITANGO_USER=witango
		WITANGO_GROUP=staff
		STARTUP_USER=root
		STARTUP_GROUP=wheel
		HTTPD_USER=root
		HTTPD_GROUP=wheel
	elif [ "$OS_VER"=8.8.1 ] ; then 
		OSX_VER=10.4
		APPSRV_USER=system
		APPSRV_GROUP=admin
		WITANGO_USER=witango
		WITANGO_GROUP=staff
		STARTUP_USER=root
		STARTUP_GROUP=wheel
		HTTPD_USER=root
		HTTPD_GROUP=wheel
	else
		OSX_VER=10.something
		APPSRV_USER=system
		APPSRV_GROUP=admin
		WITANGO_USER=witango
		WITANGO_GROUP=staff
		STARTUP_USER=root
		STARTUP_GROUP=wheel
		HTTPD_USER=root
		HTTPD_GROUP=wheel	
	fi
	}


######################################################
#      Find Apache Config File
######################################################

find_httpd_conf () {
	if [ "X$HTTPD_CONF_PATH" = "X" ] ; then
		autofind_httpd_conf
		if [ $? -eq 1 ] ; then
			echo "Apache configuration found ... $HTTPD_CONF_PATH"
			get_apache_version
			if [ $? -eq 1 ] ; then
				return 1;
			else
				echo "Apache binary not found."
				return 0;
			fi 
		else
			echo "Apache configuration not found."
			return 0;
		fi 
		return 1;
	fi
}


autofind_httpd_conf () {
	RESULT="/Library/Apache2";
	if [ -f $RESULT/conf/$HTTPD_CONF ] ; then
		HTTPD_CONF_PATH=$RESULT/conf/$HTTPD_CONF
		HTTPD_BIN_PATH=$RESULT/bin
		HTTPD_MIME_FILE=$RESULT/conf/mime.types
		return 1;
	fi
	RESULT="/usr/local/apache2";
	if [ -f $RESULT/conf/$HTTPD_CONF ] ; then
		HTTPD_CONF_PATH=$RESULT/conf/$HTTPD_CONF
		HTTPD_BIN_PATH=/usr/local/apache2/bin
		HTTPD_MIME_FILE=$RESULT/conf/mime.types
		return 1;
	fi
	RESULT="/usr/local/apache";
	if [ -f $RESULT/conf/$HTTPD_CONF ] ; then
		HTTPD_CONF_PATH=$RESULT/conf/$HTTPD_CONF
		HTTPD_BIN_PATH=/usr/local/apache/bin
		HTTPD_MIME_FILE=$RESULT/conf/mime.types
		return 1;
	fi
	RESULT="/etc/httpd";
	if [ -f $RESULT/$HTTPD_CONF ] ; then
		HTTPD_CONF_PATH=$RESULT/$HTTPD_CONF
		HTTPD_BIN_PATH=/usr/sbin
		HTTPD_MIME_FILE=$RESULT/mime.types
		return 1;
	fi
	RESULT="";
	return 0;
}


get_apache_version () {
	if [ "X$HTTPD_BIN_PATH" != "X" ] ; then
		if [ -f $HTTPD_BIN_PATH/apachectl ] ; then
			APACHE_VERSION=`$HTTPD_BIN_PATH/apachectl -version | awk 'BEGIN {IGNORECASE=1} /Apache/{print}' | sed 's/Server version: Apache\///'`
			echo Raw Apache Version $APACHE_VERSION
			APACHE_VERSION=`echo $APACHE_VERSION | sed 's/.[0-9].[0-9][0-9]//'`
			echo Processed Apache Version $APACHE_VERSION
			if [ "X$APACHE_VERSION" = "X" ] ; then
				APACHE_VERSION=1				
			fi
			
			if [ "$APACHE_VERSION" = "2" ] ; then
				APACHE_VERSION=2
			fi
			
			if [ "$APACHE_VERSION" = "2.2.3" ] ; then
				APACHE_VERSION="2.2"
			fi
			return 1;
		fi
	fi
	return 0;
}

######################################################
#      Apache config probing routines
######################################################

extract_httpd_user () {
	if [ "X$HTTPD_USER" = "X" ] ; then
		HTTPD_USER=`cat $1 | awk 'BEGIN {IGNORECASE=1} /^[[:blank:]]*User[[:blank:]]/{print $2}'`

		if [ "X$HTTPD_USER" != "X" ] ; then
			id -un $HTTPD_USER >/dev/null
			if [ $? -eq 0 ] ; then return 1; fi
			echo User \"$HTTPD_USER\" does not exist.
		else
			echo Can not extract user to run httpd as from $1.
		fi
	fi
	return 1
}



extract_httpd_group () {
	if [ "X$HTTPD_GROUP" = "X" ] ; then
		HTTPD_GROUP=`cat $1 | awk 'BEGIN {IGNORECASE=1} /^[[:blank:]]*Group[[:blank:]]/{print $2}'`
		id -Gn $HTTPD_USER >/dev/null
		if [ $? -eq 1 ] ; then exit 4; fi


		if [ "X$HTTPD_GROUP" != "X" ] ; then
			return 1
		fi
	fi
	return 1
}



extract_httpd_doc_root () {
	HTTPD_DOC_ROOT=""
	HTTPD_DOC_ROOT=`awk 'BEGIN {IGNORECASE=1} /^[:blank:]*DocumentRoot[:blank:]*/{print}' $1 | sed 's/\"\(.*\)\"/\1/' | sed 's/DocumentRoot //'`
	if [ "X$HTTPD_DOC_ROOT" = "X" ] ; then
		echo "Not found"
		return 1
	else
		return 1
	fi
}



extract_httpd_modules () {
	HTTPD_SERVER_ROOT=`awk 'BEGIN {IGNORECASE=1} /^[:blank:]*ServerRoot[:blank:]*/{print $2}' $1`
	HTTPD_SERVER_ROOT=`echo $HTTPD_SERVER_ROOT | sed 's/\"\(.*\)\"/\1/'`
	
	
	if [ "$APACHE_VERSION" = "1" ]; then 
		HTTPD_MODULE_ROOT=`awk 'BEGIN {IGNORECASE=1} /^[:blank:]*LoadModule[:blank:]*.*mod_mime/{print $3}' $1 | sed 's/\/mod_mime.so//'`
		echo $HTTPD_MODULE_ROOT
		HTTPD_MODULE_ROOT=`echo $HTTPD_SERVER_ROOT/$HTTPD_MODULE_ROOT`
		if [ "X$HTTPD_MODULE_ROOT" = "X" ] ; then
			echo "The Apache 1.3 modules dir not found.  Defaulting to /usr/libexec/httpd."
			HTTPD_MODULE_ROOT=/usr/libexec/httpd
		fi
	fi
	
	
	if [ "$APACHE_VERSION" = "2" ]; then 
		# Get Apache 2 Modules directory
		HTTPD_MODULE_ROOT=`awk 'BEGIN {IGNORECASE=1} /^[:blank:]*LoadModule[:blank:]*.*mod_mime_magic/{print $3}' $1 | sed 's/\/mod_mime_magic.so//'`
		HTTPD_MODULE_ROOT=`echo $HTTPD_SERVER_ROOT/$HTTPD_MODULE_ROOT`
		if [ "X$HTTPD_MODULE_ROOT" = "X" ] ; then
			echo "The Apache 2 modules dir not found.  Defaulting to /usr/libexec/httpd."
			HTTPD_MODULE_ROOT=/usr/libexec/httpd
		fi
	fi


	if [ "$APACHE_VERSION" = "2.2" ]; then 
		# Get Apache 2.2 Modules directory
		echo "Setting Apache 2.2 modules root directory"
		HTTPD_MODULE_ROOT=`awk 'BEGIN {IGNORECASE=1} /^[:blank:]*LoadModule[:blank:]*.*mod_mime_magic/{print $3}' $1 | sed 's/\/mod_mime_magic.so//'`

		if [ "X$HTTPD_MODULE_ROOT" = "X" ]; then 
			HTTPD_MODULE_ROOT=`echo $HTTPD_SERVER_ROOT/modules`
		else
			HTTPD_MODULE_ROOT=`echo $HTTPD_SERVER_ROOT/$HTTPD_MODULE_ROOT`
		fi
		
		echo "Apache 2.2 modules directory set to ... $HTTPD_MODULE_ROOT"
		
		if [ "X$HTTPD_MODULE_ROOT" = "X" ] ; then
			echo "The Apache 2.2 modules dir not found.  Defaulting to /usr/libexec/httpd."
			HTTPD_MODULE_ROOT=/usr/libexec/httpd
		fi
	fi



	return 1;
}



######################################################
#      Get Old Configuration
######################################################

check_for_witango () {
	RESULT="/Applications/Witango/Server";
	if [ -f $RESULT/witangod ] ; then
		CURDIR=`pwd`
		cd $RESULT
		WITANGO_VERSION=`$RESULT/witangod -v 2>&1`
		CUR_WITANGO_5_VER=`echo $WITANGO_VERSION | awk 'BEGIN {IGNORECASE=1} /.*[:blank:]*5.0.*/{print $4}'`
		cd $CURDIR
		OLDWITANGO_PATH=/Applications/Witango/Server
	fi
	
	if [ -f $RESULT/witangod ] ; then
		CURDIR=`pwd`
		cd $RESULT
		WITANGO_VERSION=`$RESULT/witangod -v 2>&1`
		CUR_WITANGO_55_VER=`echo $WITANGO_VERSION | awk 'BEGIN {IGNORECASE=1} /.*[:blank:]*5.5.*/{print $4}'`
		cd $CURDIR
		OLDWITANGO_PATH=/Applications/WitangoServer/5.5
	fi
	return 1;
	}


get_old_license () {
    OLDWITANGOINIFILE=$OLDWITANGO_PATH/configuration/witango.ini
    LICENSE_KEY=""
    if [ -f $OLDWITANGOINIFILE ] ; then
		LICENSE_KEY=`awk '{ FS = "=" } { if ($1 == "LICENSE") print $2 }' $OLDWITANGOINIFILE`
		if [ "X$LICENSE_KEY" = "X" ] ; then
	 	   return 0;
		else
			return 1;
		fi
    fi
    return 0;
}



get_old_configpasswd () {
    OLDWITANGOINIFILE=$OLDWITANGO_PATH/configuration/witango.ini
    CONF_PASSWD=""
    if [ -f $OLDWITANGOINIFILE ] ; then
		CONF_PASSWD=`awk '{ FS = "=" } { if ($1 == "CONFIGPASSWD") print $2 }' $OLDWITANGOINIFILE`
		if [ "X$CONF_PASSWD" = "X" ] ; then
			return 0;
		else
			return 1;
		fi
    fi
    return 0;
}


get_old_configpasswd () {
	WITANGOUID=`id -u witango`
	WITANGOGID=`id -g witango`
	
}
######################################################
#      LICENSE management routines
######################################################

update_configpasswd () {
	echo -n "Updating config password  ... "
	if [ "X$CONF_PASSWD" = "X" ] ; then
		CONF_PASSWD="WitaNgo5conFigPassWord"
	fi
	
    sed "s/CONFIGPASSWD.*/CONFIGPASSWD=$CONF_PASSWD/g" $WITANGO_PATH/configuration/witango.ini > /tmp/witangoini.tmp;
	if [ ! $? -eq 0 ] ; then echo "error"; return 0; fi
	if [ -f /tmp/witangoini.tmp ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo  "Restore witango.ini and delete temp file."
		fi
		cp -fpu /tmp/witangoini.tmp $WITANGO_PATH/configuration/witango.ini
		rm -f /tmp/witangoini.tmp;
	fi
	echo "ok"
	return 0
}



update_license () {
	echo -n "Updating license  ... "
    sed "s/LICENSE.*/LICENSE=$LICENSE_KEY/g" $WITANGO_PATH/configuration/witango.ini > /tmp/witangoini.tmp;
	if [ ! $? -eq 0 ] ; then echo "error"; return 0; fi
	if [ -f /tmp/witangoini.tmp ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo  "Restore witango.ini and delete temp file."
		fi
		cp -fp /tmp/witangoini.tmp $WITANGO_PATH/configuration/witango.ini
		rm -f /tmp/witangoini.tmp;
	fi
	echo "ok"
	return 0
}



######################################################
#      Probe Webstar Routines
######################################################

get_webstar_5_directory () {
	WEBSTAR_MODULE_PATH=/Applications/4DWebSTAR/WebServer/Plug-Ins
	if [ -d "$WEBSTAR_MODULE_PATH" ] ; then
		WEBSTAR_INSTALLED=1;
		return 1;
	else
		WEBSTAR_INSTALLED=0;
		WEBSTAR_MODULE_PATH="";
		echo "Webstar not located"
	fi
	}



###############################################################
#      Update Witango.ini file
###############################################################
update_witango_ini () {
	if [ $? -eq 1 ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo  "Adding old LICENSE ($LICENSE_KEY) to witango.ini ..."
		fi
		update_license $LICENSE_KEY
	else
		echo  "Ensure that you add your license key to the witango.ini file and save your license.ini file to the configuration directory."
	fi

	if [ $? -eq 1 ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo  "Adding old CONFIGPASSWD ($CONF_PASSWD) to witango.ini ..."
		fi
		update_configpasswd $CONF_PASSWD
	else
		echo  "Ensure that you add a secure configuration password to the witango.ini file."
	fi
}
	



###########################################################
#      Setup Witango Web Server Plug In for Apache 2
###########################################################

setup_apache2_web_plugin () {
	if [ "$APACHE_VERSION" = "2.2" ]; then 
		APACHE2_MODULE=mod_witango55_apache22.so
		echo  "Copying Apache 2.2 Plug-in ..."
	else
		APACHE2_MODULE=mod_witango55_apache2.so
		echo  "Copying Apache 2 Plug-in ..."
	fi
	
	echo "Copying $WITANGO_PATH/Install/Plug-Ins/$APACHE2_MODULE to $HTTPD_MODULE_ROOT"
	/bin/cp -f -p "$WITANGO_PATH/Install/Plug-Ins/$APACHE2_MODULE" "$HTTPD_MODULE_ROOT"
	/usr/sbin/chown -f $HTTPD_USER $HTTPD_MODULE_ROOT/$APACHE2_MODULE
	/usr/bin/chgrp -f $HTTPD_GROUP $HTTPD_MODULE_ROOT/$APACHE2_MODULE
	/bin/chmod 755 $HTTPD_MODULE_ROOT/$APACHE2_MODULE

	# Edit Apache Configuration File.
	apacheconfigured=`/usr/bin/grep "WitangoModule" $HTTPD_CONF_PATH | /usr/bin/wc -l`
	if [ $apacheconfigured -eq 0 ]; then 
		echo  "Configuring Apache 2 Plug-in ..."
		# apache NOT configured
		sed '/^[:blank:]*LoadModule[:blank:]*.*mod_rewrite.so/i\
		\
		# The following lines load the Witango 5.5 module for Apache 2 to enable communication with the Witango Application Server \
		LoadModule WitangoModule '"$HTTPD_MODULE_ROOT/$APACHE2_MODULE"' \
		WitangoModule '"$APACHE2_MODULE"' \
		AddType application/witango-application-file taf tml thtml tcf wws\
		\
		' $HTTPD_CONF_PATH >> $HTTPD_CONF_PATH.witango

		echo "Switching to new Apache 2 httpd.conf"
		/usr/sbin/chown -R -f $HTTPD_USER $HTTPD_CONF_PATH
		/usr/bin/chgrp -R -f $HTTPD_GROUP $HTTPD_CONF_PATH
		/bin/chmod -R 755 $HTTPD_CONF_PATH
		/bin/mv -f $HTTPD_CONF_PATH $HTTPD_CONF_PATH.prewitango55 2>&1
		/bin/mv -f $HTTPD_CONF_PATH.witango $HTTPD_CONF_PATH 2>&1
	else
		echo "WARNING: The Apache 2 configuration file $HTTPD_MODULE_ROOT already has LoadModule commands for WitangoModule."
		echo "WARNING: There may be an older version of the Witango Plugin for Apache 2 configured.  You will need to manually check and reconfigure Apache."
		/bin/mv -f $HTTPD_MODULE_ROOT/$APACHE2_MODULE $HTTPD_MODULE_ROOT/witango55_apache2.so 2>&1
	fi
		
		
	# Edit Apache mime.types File.
	# Add to mime.types     application/witango-application-file taf tml thtml tcf wws
	apacheconfigured=`/usr/bin/grep "witango-application-file" $HTTPD_MIME_FILE | /usr/bin/wc -l`
	if [ $apacheconfigured -eq 0 ]; then 
		echo  "Configuring mime types for Apache 2 Plug-in ..."
		# apache NOT configured
		sed '$a \
application\/witango-application-file taf tml thtml tcf wws\
' $HTTPD_MIME_FILE >> $HTTPD_MIME_FILE.witango

		echo "Switching to new Apache 2 mime.types"
		/usr/sbin/chown -R -f $HTTPD_USER $HTTPD_MIME_FILE
		/usr/bin/chgrp -R -f $HTTPD_GROUP $HTTPD_MIME_FILE
		/bin/chmod -R 755 $HTTPD_MIME_FILE
		/bin/mv -f $HTTPD_MIME_FILE $HTTPD_MIME_FILE.prewitango55 2>&1
		/bin/mv -f $HTTPD_MIME_FILE.witango $HTTPD_MIME_FILE 2>&1

	else
		echo "WARNING: The Apache 2 configuration file $HTTPD_MIME_FILE already has Witango mime types."
		echo "WARNING: You will need to manually check and reconfigure Apache."
	fi
}


###########################################################
#      Setup Witango Web Server Plug In for Apache 1.3
###########################################################

setup_apache1_web_plugin () {

	APACHE1_MODULE=mod_witango55_apache1.so
	echo  "Copying Apache 1.3 Plug-in ..."

	/bin/cp -f -p "$WITANGO_PATH/Install/Plug-Ins/$APACHE1_MODULE" "$HTTPD_MODULE_ROOT"
	/usr/sbin/chown -f $HTTPD_USER $HTTPD_MODULE_ROOT/$APACHE1_MODULE
	/usr/bin/chgrp -f $HTTPD_GROUP $HTTPD_MODULE_ROOT/$APACHE1_MODULE
	/bin/chmod 755 $HTTPD_MODULE_ROOT/$APACHE1_MODULE

	# Edit Apache Configuration File.
	apacheconfigured=`/usr/bin/grep "WitangoModule" $HTTPD_CONF_PATH | /usr/bin/wc -l`
	if [ $apacheconfigured -eq 0 ]; then 
		echo  "Configuring Apache 1.3 Plug-in ..."
		# apache NOT configured
		/bin/cp -f -p $HTTPD_CONF_PATH $HTTPD_CONF_PATH.prewitango55 2>&1
		
		/bin/echo >> $HTTPD_CONF_PATH
		/bin/echo '# The following lines load the Witango 5.5 module for Apache 1.3 to enable communication with the Witango Application Server' >> $HTTPD_CONF_PATH
		/bin/echo "LoadModule WitangoModule "$HTTPD_MODULE_ROOT/$APACHE1_MODULE >> $HTTPD_CONF_PATH
		/bin/echo "WitangoModule "$APACHE1_MODULE >> $HTTPD_CONF_PATH

		echo "Switching to new Apache 1.3 httpd.conf"
		/usr/sbin/chown -R -f $HTTPD_USER $HTTPD_CONF_PATH
		/usr/bin/chgrp -R -f $HTTPD_GROUP $HTTPD_CONF_PATH
		/bin/chmod -R 755 $HTTPD_CONF_PATH
	else
		echo "WARNING: The Apache 1.3 configuration file $HTTPD_MODULE_ROOT already has LoadModule commands for WitangoModule."
		echo "WARNING: There may be an older version of the Witango Plugin for Apache 1.3 configured.  You will need to manually check and reconfigure Apache."
		/bin/mv -f $HTTPD_MODULE_ROOT/$APACHE1_MODULE $HTTPD_MODULE_ROOT/witango55_apache1.so 2>&1
	fi
		
		
	# Edit Apache mime.types File.
	# Add to mime.types     application/witango-application-file taf tml thtml tcf wws
	apacheconfigured=`/usr/bin/grep "witango-application-file" $HTTPD_MIME_FILE | /usr/bin/wc -l`
	if [ $apacheconfigured -eq 0 ]; then 
		echo  "Configuring mime types for Apache 1 Plug-in ..."
		# apache NOT configured
		sed '$a \
application\/witango-application-file taf tml thtml tcf wws\
' $HTTPD_MIME_FILE >> $HTTPD_MIME_FILE.witango

		echo "Switching to new Apache 1 mime.types"
		/usr/sbin/chown -R -f $HTTPD_USER $HTTPD_MIME_FILE
		/usr/bin/chgrp -R -f $HTTPD_GROUP $HTTPD_MIME_FILE
		/bin/chmod -R 755 $HTTPD_MIME_FILE
		/bin/mv -f $HTTPD_MIME_FILE $HTTPD_MIME_FILE.prewitango55 2>&1
		/bin/mv -f $HTTPD_MIME_FILE.witango $HTTPD_MIME_FILE 2>&1

	else
		echo "WARNING: The Apache 2 configuration file $HTTPD_MIME_FILE already has Witango mime types."
		echo "WARNING: You will need to manually check and reconfigure Apache."
	fi
}



###########################################################
#      Setup Witango Web Server Plug In for WebSTAR 5
###########################################################

setup_webstar5_web_plugin () {

	if [ -d "$WEBSTAR_MODULE_PATH" ] ; then
		WEBSTAR_MODULE=Witango55_Webstar5.bundle
		echo  "Configuring WebStar Plug-in ..."
		
		wsRESULT=`/bin/cp -Rfp "$WITANGO_PATH/Install/Plug-Ins/$WEBSTAR_MODULE" "$WEBSTAR_MODULE_PATH" 2>&1`
		return 1;
	else
		echo "The Witango Plugin for Webstar was not installed."
	fi
}



###########################################################
#      Setup Witango server and configuration files
###########################################################

setup_witango_server () {

	echo -n "Copy the config files from the pre install backup location ... "
	wsRESULT=`/bin/cp -f -p $WITANGO_PATH/configuration.bkp/*.ini $WITANGO_PATH/configuration/ 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi

	echo -n "Setting owner for $WITANGO_PATH to $WITANGO_USER ... "
	wsRESULT=`/usr/sbin/chown -R $WITANGO_USER $WITANGO_PATH 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi
	
	echo -n "Setting group for $WITANGO_PATH to $WITANGO_GROUP ... "
	wsRESULT=`/usr/bin/chgrp -R $WITANGO_GROUP $WITANGO_PATH 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi
	
	echo -n "Setting permissions for $WITANGO_APPS_PATH ... "
	wsRESULT=`/bin/chmod -R 775 $WITANGO_APPS_PATH 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi

	echo -n "Setting permissions for $WITANGO_PATH ... "
	wsRESULT=`/bin/chmod -R 775 $WITANGO_PATH 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi

	echo -n "Setting permissions for $WITANGO_PATH/configuration ... "
	wsRESULT=`/usr/sbin/chown -R -f $WITANGO_USER $WITANGO_PATH/configuration 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		echo "ok"
	fi
	
	echo -n "Creating Startup item ... "
	wsRESULT=`/bin/cp -fR $WITANGO_PATH/Install/StartupItem/Witango_5.5 /Library/StartupItems 2>&1`
	if [ ! $? -eq 0 ] ; then
		echo "error"
		echo $wsRESULT
	else
		/usr/sbin/chown -R -f $STARTUP_USER /Library/StartupItems/Witango_5.5
		/usr/bin/chgrp -R -f $STARTUP_GROUP /Library/StartupItems/Witango_5.5
		/bin/chmod -R 755 /Library/StartupItems/Witango_5.5
		echo "ok"
	fi
	
	echo -n "Add WITANGO to the /etc/hostconfig  ... "
	wsRESULT=`/usr/bin/grep "WITANGO55=" /etc/hostconfig | /usr/bin/wc -l`
	if [ $wsRESULT = 0 ]; then 
		# Startup NOT Configured
		/bin/cat $WITANGO_PATH/install/setstartup.txt >> /private/etc/hostconfig
		rm $WITANGO_PATH/Install/setstartup.txt
	else
		echo "WITANGO55 already present in the hostconfig file"
	fi
	
	return 1;
}



###############################################################
#      Main routine that controls the installation sequence
###############################################################

main () {
	echo "Initialising Installation ... "


	if [ "$VERBOSE" = "1" ] ; then
		echo  "Installing in verbose mode"
	fi
	
	if [ -f /tmp/witangoini.tmp ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo  "Removing existing temp files"
		fi
		rm -f /tmp/witangoini.tmp;
	fi
	
	echo; echo "Probing user configuration ..."
	
	probe_os
	echo "Installing on OS X" $OSX_VER

	check_for_witango
	echo Witango Servers Installed ... $CUR_WITANGO_5_VER $CUR_WITANGO_55_VER
	WITANGO_APPS_PATH=/Applications/WitangoServer
	WITANGO_PATH=/Applications/WitangoServer/5.5
	echo "WITANGO_PATH set to $WITANGO_PATH"
	
	get_old_license
	if [ "$VERBOSE" = "1" ] ; then
		echo "Probing for old LICENSE value ... $LICENSE_KEY"
	fi
	
	get_old_configpasswd
	if [ "$VERBOSE" = "1" ] ; then
		echo "Probing for old CONFIGPASSWD value ... $CONF_PASSWD"
	fi
	
	get_webstar_5_directory
	if [ "$VERBOSE" = "1" ] ; then
		echo "Probing for Webstar 5 directory ... $WEBSTAR_MODULE_PATH"
	fi
	

	echo  "Probing Apache configuration ..."
	find_httpd_conf
	if [ $? -eq 1 ] ; then
		if [ "$VERBOSE" = "1" ] ; then
			echo "Apache version ... $APACHE_VERSION"
			echo "Apache config file ... $HTTPD_CONF_PATH"
		fi

		extract_httpd_user $HTTPD_CONF_PATH
		if [ "$VERBOSE" = "1" ] ; then
			echo "httpd user ... $HTTPD_USER"
		fi

		extract_httpd_group $HTTPD_CONF_PATH
		if [ "$VERBOSE" = "1" ] ; then
			echo "httpd group ... $HTTPD_GROUP"
		fi
		
		extract_httpd_modules $HTTPD_CONF_PATH 
		if [ "$VERBOSE" = "1" ] ; then
			echo "httpd modules directory ... $HTTPD_MODULE_ROOT"
		fi

		extract_httpd_doc_root $HTTPD_CONF_PATH 
		if [ "$VERBOSE" = "1" ] ; then
			echo "httpd document root ... $HTTPD_DOC_ROOT"
		fi
	fi
	
	echo "Probing user configuration completed"
	
	echo; echo "Installing and Configuring Witango Server"
	setup_witango_server
	echo "Witango Server installation completed"
	
	echo "Installing and Configuring Witango Server Web Plug-ins"

	if [ "$APACHE_VERSION" = "1" ]; then 
		setup_apache1_web_plugin
	else
		echo "The Witango Plugin for Apache 1.3 was not installed."
	fi
	
	if [ "$APACHE_VERSION" = "2" ]; then 
		setup_apache2_web_plugin
	else
		echo "The Witango Plugin for Apache 2 was not installed."
	fi
	
	if [ "$APACHE_VERSION" = "2.2" ]; then 
		setup_apache2_web_plugin
	else
		echo "The Witango Plugin for Apache 2 was not installed."
	fi
	
	setup_webstar5_web_plugin
	
	echo "Witango Server Web Plug-in installation completed"
	
	/usr/bin/osascript -e 'Tell application "Finder"' -e 'open folder "5.5" of folder "WitangoServer" of folder "Applications" of startup disk' -e 'end tell'
	/usr/bin/osascript -e 'Tell application "Finder"' -e 'open file "ReadMe.rtf" of folder "5.5" of folder "WitangoServer" of folder "Applications" of startup disk' -e 'end tell'

	if [ -f $WITANGO_PATH/witangod ] ; then
		echo "Starting Witango daemon ..."
		SystemStarter start WITANGO55
		sleep 2
		echo "`ps -ax | grep -v grep | grep witangod`"
	fi

	echo; echo  "Post installation configuration complete."
}


main

